package com.xtianzhuang.www.service;

import java.util.List;

import com.xtianzhuang.www.entity.VUserAccount;
import com.xtianzhuang.www.entity.VUserDailyBalance;
import com.xtianzhuang.www.entity.request.DeleteBalanceRequest;
import com.xtianzhuang.www.entity.request.QueryDailyBalanceRequest;
import com.xtianzhuang.www.entity.request.SaveAccountRequest;
import com.xtianzhuang.www.entity.request.SaveDailyBalanceRequest;
import com.xtianzhuang.www.entity.response.DailyBalance;

public interface FinanceService {

	void saveAccount(SaveAccountRequest request) throws Exception;

	/**
	 * 支出
	 */
	void saveUserDailyBalancePay(SaveDailyBalanceRequest request) throws Exception;

	/**
	 * 收入
	 */
	void saveUserDailyBalanceIncome(SaveDailyBalanceRequest request) throws Exception;

	/**
	 * 转账
	 */
	void saveUserDailyBalanceTransfer(SaveDailyBalanceRequest request) throws Exception;

	/**
	 * 获取债券账户
	 */
	List<VUserAccount> getBondAccount();

	/**
	 * 获取负债账户
	 */
	List<VUserAccount> getliabilityAccounts();

	List<VUserDailyBalance> queryDailyBalance(QueryDailyBalanceRequest request);

	long queryDailyBalanceCount(QueryDailyBalanceRequest request);

	/**
	 * 删除开支记录
	 */
	void deleteDailyBalance(DeleteBalanceRequest request) throws Exception;

	List<DailyBalance> getDailyBalanceByMonth();

	List<DailyBalance> getDailyBalanceByMonth(String date);

	String getDailyBalanceTotalByMonth(String date, String type);

	List<DailyBalance> getDailyIncomeByMonth();

	List<DailyBalance> getDailyIncomeByMonth(String date);

}
